/*
 * app_pwm.h
 *
 *  Created on: 2023年9月1日
 *      Author: zlw
 */

#ifndef DS_APP_INS_APP_PWM_H_
#define DS_APP_INS_APP_PWM_H_

#include "bsp_timer.h"
#include "softwareMultiTimer.h"

typedef enum {
  beeppwm,
  ledpwm
}pwm_device_t;

typedef enum
{
  SOUND_LIGHT_OUT_TYPE_OFF = 0,//关闭退出
  SOUND_LIGHT_OUT_TYPE_INTRUSION_ALARM, //入侵报警
  SOUND_LIGHT_OUT_TYPE_FIRE, //火警
  SOUND_LIGHT_OUT_TYPE_SOS,  //紧急求助
  SOUND_LIGHT_OUT_TYPE_MEDICAL, //医疗
}SOUND_LIGHT_OUT_TYPE_E;

typedef enum
{
  SOUND_VOLUME_CLASS_LOW = 0, //低等级音量
  SOUND_VOLUME_CLASS_MEDIUM ,//中等级音量
  SOUND_VOLUME_CLASS_HIGH ,//高等级音量

  SOUND_VOLUME_CLASS_NUM
}SOUND_VOLUME_CLASS_E;


typedef enum
{
  SOUND_BLINK_TYPE_OFF = 0,//关闭退出
  SOUND_BLINK_TYPE_KEY_PRESS ,//按键音
  SOUND_BLINK_TYPE_OPERATION_TIPS,//操作提示音
  SOUND_BLINK_TYPE_OPTION_FAIL,  //操作失败
  SOUND_BLINK_TYPE_KEYPAD_LOCK
}SOUND_BLINK_TYPE_E;

//仅使用 APP_PWM.c内函数的相关设备 需初始化该管脚，
void SM_beep_enable(void);
void SM_beep_disable(void);
bool getPwmIdleState(void);

void pwm_soundLight_start(SOUND_LIGHT_OUT_TYPE_E eType,bool isSoundOn ,bool isLightOn);//指持续的音效,isLightOn 与 isSoundOn 不能同时为false
void pwm_blink_start(SOUND_BLINK_TYPE_E eType,uint8_t times, bool isSoundOn, bool isLightOn); //特指滴滴的音效，times指次数，可打断soundLightisLightOn 与 isSoundOn 不能同时为false
void pwm_sound_volume_set(SOUND_VOLUME_CLASS_E eClass);//指持续的音效
void pwm_sound_light_stateMachine_run();
#endif /* DS_APP_INS_APP_PWM_H_ */
